AT+CSQ语法即GPRS模块信号格数与信号强度的关系

您所在的位置:网站首页 gnsstoolkit3 信号强度 AT+CSQ语法即GPRS模块信号格数与信号强度的关系

AT+CSQ语法即GPRS模块信号格数与信号强度的关系

2024-07-09 11:33:01| 来源: 网络整理| 查看: 265

AT+CSQ语法

命令解释:检查网络信号强度 命令格式:AT+CSQ 命令返回:+CSQ:  **, ##           其中:

**应在 0 到 31 之间(99表示无信号),数值越大表明信号质量越好;##为误码率,值在 0 到 99 之间。否则应检查天线或 SIM 卡是否正确安装

 

测试结果:AT+CSQ                      +CSQ: 31, 99

计算公式:信号强度 = -113dBm + (rssi * 2)

通过AT+CSQ指令获取GPRS模块信号强度

如下图所示:

信号格数与信号强度的关系

手机格数与手机接收基站的信号强度有关,目前行业中并没有明确的标准,格数与信号强度关联均为厂商而定,iPhone 4信号强度与格数如下图:

诺基亚手机和iPhone 4信号强度与格数对比如下:

信号格数

接收电平强度

诺基亚

iPhone4

5格:

大于-85dBm

大于-91dBm

4格:

-85dBm至-90dBm

-91dBm至-101dBm

3格:

-90dBm至-95dBm

-101dBm至-103dBm

2格:

-95dBm至-100dBm

-103dBm至-107dBm

1格:

-100dBm至-105dBm

-107dBm至-113dBm

脱网:

小于-105 dBm

小于-113dBm

注:上表数据均为5格信号显示方式,如N97等7格信号原则与上述不同。

在这里,我采用了android系统上关于GSM模块信号格数与信号强度的对应关系,如下代码所示:

public int getGsmLevel() { int level; // ASU ranges from 0 to 31 - TS 27.007 Sec 8.5 // asu = 0 (-113dB or less) is very weak // signal, its better to show 0 bars to the user in such cases. // asu = 99 is a special case, where the signal strength is unknown. int asu = getGsmSignalStrength(); if (asu = 12) level = SIGNAL_STRENGTH_GREAT; else if (asu >= 8) level = SIGNAL_STRENGTH_GOOD; else if (asu >= 5) level = SIGNAL_STRENGTH_MODERATE; else level = SIGNAL_STRENGTH_POOR; if (DBG) log("getGsmLevel=" + level); return level; }

上面的asu即AT+CSQ指令返回的RSSI值。

参考文章:http://blog.csdn.net/garybook/article/details/17006609

 

如果是CDMA模块,应该可以参考下面的代码:

参考文章:http://www.2cto.com/kf/201306/218756.html

 

在Android4.0的系统中,手机中显示信号强度格数的代码在

frameworks\base\telephony\java\android\telephony\SignalStrength.java

getLevel( )函数,该函数是主要用来获取信号的强度。

public int getLevel() { int level; if (isGsm) { level = getLteLevel(); if (level == SIGNAL_STRENGTH_NONE_OR_UNKNOWN) { level = getGsmLevel(); } } else { int cdmaLevel = getCdmaLevel(); int evdoLevel = getEvdoLevel(); if (evdoLevel == SIGNAL_STRENGTH_NONE_OR_UNKNOWN) { /* We don't know evdo, use cdma */ level = cdmaLevel; } else if (cdmaLevel == SIGNAL_STRENGTH_NONE_OR_UNKNOWN) { /* We don't know cdma, use evdo */ level = evdoLevel; } else { /* We know both, use the lowest level */ //level = cdmaLevel < evdoLevel ? cdmaLevel : evdoLevel; level = cdmaLevel > evdoLevel ? cdmaLevel : evdoLevel; } } if (DBG) log("getLevel=" + level); return level; } public int getLevel() { int level; if (isGsm) { level = getLteLevel(); if (level == SIGNAL_STRENGTH_NONE_OR_UNKNOWN) { level = getGsmLevel(); } } else { int cdmaLevel = getCdmaLevel(); int evdoLevel = getEvdoLevel(); if (evdoLevel == SIGNAL_STRENGTH_NONE_OR_UNKNOWN) { /* We don't know evdo, use cdma */ level = cdmaLevel; } else if (cdmaLevel == SIGNAL_STRENGTH_NONE_OR_UNKNOWN) { /* We don't know cdma, use evdo */ level = evdoLevel; } else { /* We know both, use the lowest level */ //level = cdmaLevel < evdoLevel ? cdmaLevel : evdoLevel; level = cdmaLevel > evdoLevel ? cdmaLevel : evdoLevel; } } if (DBG) log("getLevel=" + level); return level; }

getCdmaLevel( )获取CdmaLevel,同样也有getEvdoLevel( )函数,在上一个函数中,通过比较Evdo和Cdma的强度,来最终确定信号的显示强度,也就是我们在通知栏里看到的信号格数。

public int getLevel() { int level; if (isGsm) { level = getLteLevel(); if (level == SIGNAL_STRENGTH_NONE_OR_UNKNOWN) { level = getGsmLevel(); } } else { int cdmaLevel = getCdmaLevel(); int evdoLevel = getEvdoLevel(); if (evdoLevel == SIGNAL_STRENGTH_NONE_OR_UNKNOWN) { /* We don't know evdo, use cdma */ level = cdmaLevel; } else if (cdmaLevel == SIGNAL_STRENGTH_NONE_OR_UNKNOWN) { /* We don't know cdma, use evdo */ level = evdoLevel; } else { /* We know both, use the lowest level */ //level = cdmaLevel < evdoLevel ? cdmaLevel : evdoLevel; level = cdmaLevel > evdoLevel ? cdmaLevel : evdoLevel; } } if (DBG) log("getLevel=" + level); return level; } public int getLevel() { int level; if (isGsm) { level = getLteLevel(); if (level == SIGNAL_STRENGTH_NONE_OR_UNKNOWN) { level = getGsmLevel(); } } else { int cdmaLevel = getCdmaLevel(); int evdoLevel = getEvdoLevel(); if (evdoLevel == SIGNAL_STRENGTH_NONE_OR_UNKNOWN) { /* We don't know evdo, use cdma */ level = cdmaLevel; } else if (cdmaLevel == SIGNAL_STRENGTH_NONE_OR_UNKNOWN) { /* We don't know cdma, use evdo */ level = evdoLevel; } else { /* We know both, use the lowest level */ //level = cdmaLevel < evdoLevel ? cdmaLevel : evdoLevel; level = cdmaLevel > evdoLevel ? cdmaLevel : evdoLevel; } } if (DBG) log("getLevel=" + level); return level; }

» 本文地址: http://velep.com/archives/1147.html

» 文章出处: reille博客—http://velep.com , 如果没有特别声明,文章均为reille博客原创作品

 



【本文地址】

公司简介

联系我们

今日新闻


点击排行

实验室常用的仪器、试剂和
说到实验室常用到的东西,主要就分为仪器、试剂和耗
不用再找了,全球10大实验
01、赛默飞世尔科技(热电)Thermo Fisher Scientif
三代水柜的量产巅峰T-72坦
作者:寞寒最近,西边闹腾挺大,本来小寞以为忙完这
通风柜跟实验室通风系统有
说到通风柜跟实验室通风,不少人都纠结二者到底是不
集消毒杀菌、烘干收纳为一
厨房是家里细菌较多的地方,潮湿的环境、没有完全密
实验室设备之全钢实验台如
全钢实验台是实验室家具中较为重要的家具之一,很多

推荐新闻


图片新闻

实验室药品柜的特性有哪些
实验室药品柜是实验室家具的重要组成部分之一,主要
小学科学实验中有哪些教学
计算机 计算器 一般 打孔器 打气筒 仪器车 显微镜
实验室各种仪器原理动图讲
1.紫外分光光谱UV分析原理:吸收紫外光能量,引起分
高中化学常见仪器及实验装
1、可加热仪器:2、计量仪器:(1)仪器A的名称:量
微生物操作主要设备和器具
今天盘点一下微生物操作主要设备和器具,别嫌我啰嗦
浅谈通风柜使用基本常识
 众所周知,通风柜功能中最主要的就是排气功能。在

专题文章

    CopyRight 2018-2019 实验室设备网 版权所有 win10的实时保护怎么永久关闭